package com.ltx.vizflowservice.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ltx.vizflowservice.common.convention.result.Result;
import com.ltx.vizflowservice.domain.dto.UserDTO;
import com.ltx.vizflowservice.domain.entity.User;

/**
 * <p>
 * 用户表 服务类
 * </p>
 *
 * @author 罗添煦
 * @since 2024-11-15
 */
public interface UserService extends IService<User> {

    /**
     * 登录
     * @param userDTO 用户名密码
     * @return Result，登录成功返回token，失败提示
     */
    Result<?> login(UserDTO userDTO) throws Exception;

    /**
     * 注册
     * @param userDTO 用户名密码
     * @return Result，注册成功返回success，失败提示
     */
    Result<?> register(UserDTO userDTO) throws Exception;

    /**
     * 发送短信验证码
     * @param phone 手机号
     * @return Result，发送成功返回code，失败提示
     */
    Result<?> send(String phone);

    /**
     * 重置密码
     * @param userDTO 用户
     * @return Result，重置成功返回success，失败提示
     */
    Result<?> resetPassword(UserDTO userDTO) throws Exception;

    /**
     * 绑定手机号
     * @param userDTO 用户
     * @return Result，绑定成功返回success，失败提示
     */
    Result<?> bindPhone(UserDTO userDTO) throws Exception;
}
